QA: run_qa v1.6 form + ExplicitImports#191
Draft
ChrisRackauckas-Claude wants to merge 2 commits into
Draft
Conversation
Convert the hand-rolled Aqua + ExplicitImports QA body in test/qa/qa.jl onto SciMLTesting 1.6's run_qa, with explicit_imports = true. Aqua's test_all (with the persistent-tasks [sources] sanitizer) replaces the eight individual Aqua calls; all six ExplicitImports checks now run. The four owners/public ExplicitImports checks flag only dependency-package names (SciMLBase / DiffEqBase / CommonSolve / StaticArrays / Base) that are non-public or re-exported, so each is allowed via a per-check ei_kwargs ignore-list documenting its source package. No DifferenceEquations-owned name is ignored, and no_implicit_imports / no_stale_explicit_imports pass unchanged. JET stays a bespoke report_call testset: the issue SciML#187 cases live on specific solve paths that JET.report_package (run_qa's JET path) does not surface, so run_qa is called with JET = nothing and the two SciML#187 @test_broken markers are preserved verbatim. Deps: SciMLTesting compat bumped to "1.6"; ExplicitImports dropped (transitive via SciMLTesting); Distributions and SafeTestsets dropped (unused in the QA env). Aqua and JET kept as direct deps (Aqua's ambiguities child-proc and the bespoke JET testset need them); LinearAlgebra kept (Diagonal in the KalmanFilter JET case). Verified locally against released SciMLTesting 1.6.0 on Julia 1.10 (lts) and 1.11 (the "1" lane): Quality Assurance 17/17 pass, JET static analysis 1 pass + 2 broken, 0 fail/error on both. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Downgrade lane failed at sandbox resolve with "empty intersection between StaticArrays@1.9.8 and project compatibility 1.9.18-1": the main Project.toml pins StaticArrays to its 1.9.8 floor, but test/Project.toml carried a higher 1.9.18 floor (a dependabot "permit latest" bump), so at downgrade the package-under-test was held at 1.9.8 while the test sandbox demanded >=1.9.18. Lower the test floor to 1.9.8 to match the package floor; no test dependency requires StaticArrays >= 1.9.18 (highest is ForwardDiff 1.0 at 1.5.0). A second downgrade-only break was masked behind that resolve failure: runtests.jl calls run_tests(...; all = ["Core"]), but the `all` kwarg was only added in SciMLTesting 1.1.0. The test floor SciMLTesting = "1" let downgrade pick 1.0.0, which errors with MethodError (no method run_tests(; ..., all)). Raise the floor to 1.1. Both are pre-existing downgrade-floor issues (predate the run_qa v1.6 conversion); they only manifest at downgrade because Core lanes resolve latest versions where both floors are satisfied. Verified locally on Julia 1.10.11 with CI=true and all non-stdlib compat floor-pinned (the exact Downgrade lane): sandbox resolves (StaticArrays v1.9.8, SciMLTesting v1.1.0) and "DifferenceEquations tests passed" across all Core groups. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please ignore until reviewed by @ChrisRackauckas.
Converts
test/qa/qa.jlfrom the hand-rolled Aqua + ExplicitImports body onto SciMLTesting 1.6'srun_qa, withexplicit_imports = true. Verified locally against the released SciMLTesting 1.6.0 (no dev-from-branch).What changed
run_qa(DifferenceEquations; explicit_imports = true, ...)replaces the eight individualAqua.*calls (nowAqua.test_allwith the persistent-tasks[sources]sanitizer) and the two-check ExplicitImports block (now all six EI checks run).report_calltestset. The issue QA: Aqua/JET findings marked @test_broken pending fix #187 cases live on specific solve paths (DirectIteration/KalmanFilter) thatJET.report_package(run_qa's JET path) does not surface, sorun_qais called withJET = nothingand the two QA: Aqua/JET findings marked @test_broken pending fix #187@test_brokenmarkers are preserved verbatim.ExplicitImports findings
no_implicit_importsandno_stale_explicit_importspass unchanged (they were already the only two checks run).The four newly-enabled owners/public checks flag only dependency-package names — none owned by DifferenceEquations — so each is allowed via a per-check
ei_kwargsignore-list (documented with its source package). These names go public as the base libs release.all_explicit_imports_via_owners(6 ignored):KeywordArgSilent/get_concrete_p/get_concrete_u0/isconcreteu0/promote_u0(SciMLBase, re-exported via DiffEqBase),ismutable(Base, via StaticArrays).all_qualified_accesses_via_owners(1):__solve(SciMLBase, accessed via DiffEqBase).all_qualified_accesses_are_public(13):@propagate_inbounds(Base);Default/Success/T(SciMLBase.ReturnCode);build_solution/getindepsym/getindepsym_defaultt(SciMLBase);__solve/check_prob_alg_pairing/get_concrete_problem(DiffEqBase);init/solve/solve!(CommonSolve).all_explicit_imports_are_public(17):@add_kwonly/AbstractDEAlgorithm/AbstractDEProblem/AbstractRODESolution/ConstantInterpolation/NullParameters/build_solution/promote_tspan(SciMLBase);KeywordArgSilent/get_concrete_p/get_concrete_u0/isconcreteu0/promote_u0(DiffEqBase);init/solve/solve!(CommonSolve);ismutable(StaticArrays).No
aqua_broken/ei_brokenneeded:Aqua.test_allpasses clean (11/11) and all six EI checks pass with the ignore-lists.jet_brokenis not used — the #187 markers stay as the bespokereport_calltestset rather than being remapped (report_package = 0 reports, which would Unexpected-Pass ajet_broken = true).Deps (
test/qa/Project.toml)SciMLTestingcompat bumped"1"->"1.6".ExplicitImports(transitive via SciMLTesting),DistributionsandSafeTestsets(unused in the QA env).Aqua(ambiguities child-proc needs it a direct dep) andJET(bespoke testset); keptLinearAlgebra(Diagonalin the KalmanFilter JET case).Verification
Ran the QA group against released SciMLTesting 1.6.0 on:
Quality Assurance17 pass / 17 total;JET static analysis1 pass + 2 broken / 3 total. 0 fail, 0 error.Quality Assurance17/17;JET static analysis1 pass + 2 broken. 0 fail, 0 error.🤖 Generated with Claude Code